<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
<head>
  <link href="//gmpg.org/xfn/11" rel="profile">
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="generator" content="Hugo 0.68.3" />

  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>【GitHub】推荐一款功能强大的词云工具，支持更改形状和背景色、自定义风格、颜色流动… &middot; 云淡风轻</title>

  
  <link type="text/css" rel="stylesheet" href="/my_technology_blog/css/print.css" media="print">
  <link type="text/css" rel="stylesheet" href="/my_technology_blog/css/poole.css">
  <link type="text/css" rel="stylesheet" href="/my_technology_blog/css/syntax.css">
  <link type="text/css" rel="stylesheet" href="/my_technology_blog/css/hyde.css">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Abril+Fatface|PT+Sans:400,400i,700">


  
  <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/apple-touch-icon-144-precomposed.png">
  <link rel="shortcut icon" href="/favicon.png">

  
  
</head>

  <body class=" ">
  <aside class="sidebar">
  <div class="container sidebar-sticky">
    <div class="sidebar-about">
      <a href="/my_technology_blog/"><h1>云淡风轻</h1></a>
      <p class="lead">
       这里是人凤的个人博客 
      </p>
    </div>

    <nav>
      <ul class="sidebar-nav">
        <li><a href="/my_technology_blog/">Home</a> </li>
        <li><a href="http://liu_ren_feng.gitee.io/my_technology_blog/tree/"> 个人简历 </a></li>
      </ul>
    </nav>

  </div>
</aside>

    <main class="content container">
    <div class="post">
  <h1>【GitHub】推荐一款功能强大的词云工具，支持更改形状和背景色、自定义风格、颜色流动…</h1>
  <time datetime=2020-04-07T16:44:57&#43;0800 class="post-date">Tue, Apr 7, 2020</time>
  <p>【GitHub】推荐一款功能强大的词云工具，支持更改形状和背景色、自定义风格、颜色流动…</p>
<p>stylecloud 是一个 Python 包，它基于流行的 word_cloud 包，并添加了一些有用的功能，从而创建出独特的词云。stylecloud 具备以下特点：</p>
<ul>
<li>
<p>为词云提供（任意大小）的图标形状（通过 Font Awesome 5.11.2 获得）；</p>
</li>
<li>
<p>支持高级调色板（通过 palettable 实现）；</p>
</li>
<li>
<p>为上述调色板提供直接梯度；</p>
</li>
<li>
<p>支持读取文本文件，或预生成的 CSV 文件（包含单词和数字）；</p>
</li>
<li>
<p>提供命令行接口。</p>
</li>
</ul>
<p>stylecloud 包由数据科学家 Max Woolf 创建，是对其 2016 年风格化词云项目的较正式实现。</p>
<p><img src="../static/one/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20200407180347.jpg" alt=""></p>
<p>安装</p>
<p>你可以通过 pip 安装 stylecloud：</p>
<pre><code>pip install stylecloud
</code></pre>
<p>使用</p>
<p>你可以通过 Python 脚本使用 stylecloud，也可以直接使用独立的 CLI app。
或使用以下 Python 脚本：</p>
<pre><code>1. import stylecloud
2. stylecloud.gen_stylecloud(file_path= constitution.txt )
</code></pre>
<p>得到如下词云：</p>
<p><img src="../static/one/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20200407182941.jpg" alt=""></p>
<p>但你可以做到更多！比如使用 Font Awesome 提供的免费图标更改词云的形状，通过 palettable 更改调色板以自定义风格，更改背景颜色，以及最重要的，添加梯度使颜色按照特定方向流动。</p>
<pre><code>1   import stylecloud
2    
3   stylecloud.gen_stylecloud(file_path= constitution.txt ,
4                             icon_name= fas fa-dog ,
5                             palette= colorbrewer.diverging.Spectral_11 ,
6                             background_color= black ,
7                             gradient= horizontal )
</code></pre>
<p><img src="../static/one/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20200407182954.jpg" alt=""></p>
<p>你还可以使用 CLI 执行更快速的 stylecloud 生成！对于上文中的旗形 stylecloud，使用：</p>
<pre><code>$\color{red}{stylecloud --file_path constitution.txt}$
</code></pre>
<p>对于更复杂的犬形 stylecloud，使用：</p>
<pre><code>stylecloud --file_path constitution.txt --icon_name  fas fa-dog  --palette colorbrewer.diverging.Spectral_11 --background_color black --gradient horizontal
</code></pre>
<p>你可以在 stylecloud-examples repo 中查看 stylecloud 的更多示例，比如如何基于 Twitter 和 Reddit 数据制作 stylecloud。</p>
<p>地址：https://github.com/minimaxir/stylecloud-examples</p>
<p><strong>有用的参数</strong></p>
<p>以下参数对 stylecloud Python 函数和 CLI 均有效，你可以通过 stylecloud -h 获取这些参数的信息。</p>
<ul>
<li>
<p>text：输入文本。最好在直接调用函数时使用。</p>
</li>
<li>
<p>file_path：输入文本/CSV 的文件路径。最好在 CLI 上使用。</p>
</li>
<li>
<p>gradient：梯度方向。（其默认值是 None，如果它的值不是 None，则 stylecloud 使用了方向性梯度。）[default: None]</p>
</li>
<li>
<p>size：stylecloud 的大小（长度和宽度）。[default: 512]</p>
</li>
<li>
<p>icon_name：stylecloud 形状的图标名称（如 fas fa-grin）。[default: fas fa-flag]</p>
</li>
<li>
<p>palette：调色板（通过 palettable 实现）。[default: cartocolors.qualitative.Bold_6]</p>
</li>
<li>
<p>background_color：背景颜色。[default: white]</p>
</li>
<li>
<p>max_font_size：stylecloud 中的最大字号。[default: 200]</p>
</li>
<li>
<p>max_words：stylecloud 可包含的最大单词数。[default: 2000]</p>
</li>
<li>
<p>stopwords：布尔值，用于筛除常见禁用词。[default: True]</p>
</li>
<li>
<p>output_name：stylecloud 的输出文本名。[default: stylecloud.png]</p>
</li>
<li>
<p>font_path：stylecloud 所用字体 .ttf 文件的路径。[default: uses included Staatliches font]</p>
</li>
<li>
<p>random_state：控制单词和颜色的随机状态。</p>
</li>
</ul>
<p><strong>小贴士</strong></p>
<p>stylecloud 的主要目标是为文本数据可视化结果提供独特的美感。词云强调统计上可靠的数据可视化，而 stylecloud 更注重「酷」！</p>
<p>stylecloud 包独立于 word_cloud 单独发布，因为它的适用范围和 Python 依赖项均有所增长。</p>
<p>生成优秀 stylecloud 需要的完美字体是：加粗/高字重，以提高可读性；紧凑/低间距，以容纳更多文本。这两个特点就是 stylecloud 使用 Staatliches 作为默认字体的原因（而不是 base word_cloud 使用的 Droid Sans 字体）。</p>
<ul>
<li>
<p>在生成 stylecloud 后，你可能想做一些后处理：例如添加颜色掩码，添加感知偏移，将 stylecloud 输入风格迁移 AI 模型等等。</p>
</li>
<li>
<p>max_font_size 的默认值 200 与 size 的默认值 512 呈正相关，如要增加 size，你还需要考虑增加 max_font_size 的值。</p>
</li>
<li>
<p>由于 stylecloud 内置 Font Awesome 字体文件的大小，它们不会在 Font Awesome 每次小型新发布时进行更新。</p>
</li>
<li>
<p>推荐使用大且重的 Font Awesome 图标，轻图标可能会过度约束文本。</p>
</li>
<li>
<p>如果使用默认随机颜色采样（random-color-sampling）方法，推荐使用 qualitative 调色板。反之，如果使用颜色梯度，推荐使用非 qualitative 调色板（如 sequential 调色板）。</p>
</li>
</ul>
<p><strong>展望</strong></p>
<p>stylecloud 的开发者表示未来将提供以下新功能：</p>
<ul>
<li>
<p>支持自定义字体文件（如 Font Awesome Pro）；</p>
</li>
<li>
<p>创建一个运行 stylecloud 的 app。</p>
</li>
</ul>

</div>


    </main>

    
  </body>
</html>
